Formal Methods for Automated Program Improvement
نویسنده
چکیده
Systems supporting the manipulation of non-trivial program code are complex and are at best semi-automatic. However, formal methods, and in partieular theorem proving, are providing a growing foundation of techniques for automatie program development (synthesis, improvement, transformation and verification). In this paper we report on novel research concerning: (1) the exploitation of synthesis proofs for the purposes of automatie program optimization by the transformation of proofs, andj (2) the automatie synthesis of efficient programs from standard equational definitions. A fundamental theme exhibited by our research is that mechanical program construction, whether by direct synthesis or transformation, is tantamount to program verification plus higher-order reasoning. The exploitation of the proofs-as-programs paradigm lends our approach numerous advantages over more traditional approaches to program improvement. For example, we are able to automate the identification of efficient recursive data-types which usua11y correspond to eureka steps in "pure" transformational techniques such as unfoldjfold. Furthermore, a11 transformed, and synthesized, programs are guaranteed correct with respect to their specifications.
منابع مشابه
Hypothesis-Based Approach To Detecting Runtime Violations In Java Program Using Automated Theorem Prover
We develop an approach to apply formal methods to represent the program source codes as a model, after that, using automated theorem prover to try to detect runtime violations in those codes by doing static analysis. Unlike other proof based program verification approaches, this approach is based on hypothesis to develop the formal specification information implied by source codes, such as inva...
متن کاملProof Automation in Kleene Algebra
It has often been claimed that model checking, special purpose automated deduction or interactive theorem proving are needed for formal program development. Recently, it has been demonstrated that off-the-shelf automated proof and counterexample search is an interesting alternative if combined with the right domain model. Furthermore it has been shown that variants of Kleene algebra might provi...
متن کاملA Hypothesis-Based Approach to Detecting Runtime Violations
We have developed an approach to apply formal methods to represent program source code as a model and use an automated theorem prover to detect runtime violations by doing static analysis. Unlike other proof-based program verification approaches, this approach is based on a hypothesis to develop the implicit specification information, such as invariants, preconditions, postconditions, then usin...
متن کاملGeneral Techniques for Automatic Program Optimization and Synthesis Through Theorem Provingl
We report on program optimization research within the proofs as programs paradigm. Firstly, we describe program optimization by the transformation of program synthesis proofs (i.e. constructive existence proofs). Synthesis proofs which yield inefficient programs are transformed into analogous proofs which yield more efficient programs. The key to program optimization lies in the transformation ...
متن کاملAutomated Reasoning in Kleene Algebra
It has often been claimed that model checking, special purpose automated deduction or interactive theorem proving are needed for formal program development. We demonstrate that off-the-shelf automated proof and counterexample search is an interesting alternative if combined with the right domain model. We implement variants of Kleene algebras axiomatically in Prover9/Mace4 and perform proof exp...
متن کامل